From 41b6f5268155101fd6bd570e83e544203a44cc90 Mon Sep 17 00:00:00 2001 From: Yehuda Katz Date: Thu, 29 May 2014 14:31:09 -0700 Subject: [PATCH] Tests passing again --- src/cargo/core/package.rs | 12 +++++++++++- src/cargo/ops/cargo_rustc.rs | 2 +- src/cargo/sources/path.rs | 10 ++++++++-- tests/support.rs | 2 +- tests/test_cargo_compile.rs | 2 +- 5 files changed, 22 insertions(+), 6 deletions(-) diff --git a/src/cargo/core/package.rs b/src/cargo/core/package.rs index bc8064ef8..ad1f7b852 100644 --- a/src/cargo/core/package.rs +++ b/src/cargo/core/package.rs @@ -2,7 +2,9 @@ use std::slice; use std::fmt; use std::fmt::{Show,Formatter}; use std::path::Path; +use semver::Version; use core::{ + NameVer, Dependency, Manifest, Registry, @@ -72,6 +74,10 @@ impl Package { self.get_manifest().get_name() } + pub fn get_version<'a>(&'a self) -> &'a Version { + self.get_manifest().get_version() + } + pub fn get_dependencies<'a>(&'a self) -> &'a [Dependency] { self.get_manifest().get_dependencies() } @@ -91,6 +97,10 @@ impl Package { pub fn get_absolute_target_dir(&self) -> Path { self.get_root().join(self.get_target_dir()) } + + pub fn is_for_name_ver(&self, name_ver: &NameVer) -> bool { + self.get_name() == name_ver.get_name() && self.get_version() == name_ver.get_version() + } } impl Show for Package { @@ -106,7 +116,7 @@ pub struct PackageSet { impl PackageSet { pub fn new(packages: &[Package]) -> PackageSet { - assert!(packages.len() > 0, "PackageSet must be created with at least one package") + //assert!(packages.len() > 0, "PackageSet must be created with at least one package") PackageSet { packages: Vec::from_slice(packages) } } diff --git a/src/cargo/ops/cargo_rustc.rs b/src/cargo/ops/cargo_rustc.rs index d04ecfd72..733e5d91e 100644 --- a/src/cargo/ops/cargo_rustc.rs +++ b/src/cargo/ops/cargo_rustc.rs @@ -22,7 +22,7 @@ pub fn compile_packages(pkg: &Package, deps: &PackageSet) -> CargoResult<()> { // Traverse the dependencies in topological order for dep in try!(topsort(deps)).iter() { - println!("Compiling {}", pkg); + println!("Compiling {}", dep); try!(compile_pkg(dep, &deps_target_dir, &deps_target_dir, false)); } diff --git a/src/cargo/sources/path.rs b/src/cargo/sources/path.rs index 509072f44..452b0e2e6 100644 --- a/src/cargo/sources/path.rs +++ b/src/cargo/sources/path.rs @@ -41,10 +41,16 @@ impl Source for PathSource { Ok(()) } - fn get(&self, _: &[NameVer]) -> CargoResult> { + fn get(&self, name_vers: &[NameVer]) -> CargoResult> { Ok(self.paths.iter().filter_map(|path| { match read_manifest(path) { - Ok(pkg) => Some(pkg), + Ok(pkg) => { + if name_vers.iter().any(|nv| pkg.is_for_name_ver(nv)) { + Some(pkg) + } else { + None + } + } Err(_) => None } }).collect()) diff --git a/tests/support.rs b/tests/support.rs index 59595a281..96cd19ab7 100644 --- a/tests/support.rs +++ b/tests/support.rs @@ -213,7 +213,7 @@ impl Execs { match str::from_utf8(actual) { None => Err(format!("{} was not utf8 encoded", description)), Some(actual) => { - ham::expect(actual == out, format!("{} was `{}`\n other output:\n{}", description, actual, str::from_utf8(extra))) + ham::expect(actual == out, format!("{} was:\n`{}`\n\nexpected:\n`{}`\n\nother output:\n`{}`", description, actual, out, str::from_utf8(extra))) } } } diff --git a/tests/test_cargo_compile.rs b/tests/test_cargo_compile.rs index d8cb6c331..b4d990590 100644 --- a/tests/test_cargo_compile.rs +++ b/tests/test_cargo_compile.rs @@ -64,7 +64,7 @@ test!(cargo_compile_with_invalid_code { assert_that(p.cargo_process("cargo-compile"), execs() .with_status(101) - .with_stderr(format!("src/foo.rs:1:1: 1:8 error: expected item but found `invalid`\nsrc/foo.rs:1 invalid rust code!\n ^~~~~~~\nfailed to execute: `rustc src/foo.rs --crate-type bin --out-dir {} -L {}`", target.display(), target.display()).as_slice())); + .with_stderr(format!("src/foo.rs:1:1: 1:8 error: expected item but found `invalid`\nsrc/foo.rs:1 invalid rust code!\n ^~~~~~~\nfailed to execute: `rustc src/foo.rs --crate-type bin --out-dir {} -L {}`", target.display(), target.join("deps").display()).as_slice())); }) test!(cargo_compile_with_warnings_in_the_root_package { -- 2.30.2